const redis = require("redis");
const env = require("./env");
const { log } = require("./utils");
const client = redis.createClient(env.redis);

client.on("connect", () => {
	log("blue", "redis 连接成功!");
});

client.on("error", function (err) {
	log("red", "redis 连接错误: " + err);
});
const redisPromisify = {
	get: (key) => {
		return new Promise((reslove, reject) => {
			client.get(key, (err, data) => {
				if (err) return reject(err);
				reslove(data);
			});
		});
	},
	set: (key, value) => {
		return new Promise((reslove, reject) => {
			client.set(key, value, (err, data) => {
				if (err) return reject(err);
				reslove(data);
			});
		});
	},
	del: (key) => {
		return new Promise((reslove, reject) => {
			client.del(key, (err, data) => {
				if (err) return reject(err);
				reslove(data);
			});
		});
	},
	hget: (key, field) => {
		return new Promise((reslove, reject) => {
			client.hget(key, field, (err, data) => {
				if (err) return reject(err);
				reslove(data);
			});
		});
	},
	hset: (key, field, value) => {
		return new Promise((reslove, reject) => {
			client.hset(key, field, value, (err, data) => {
				if (err) return reject(err);
				reslove(data);
			});
		});
	},
	hdel: (key, field) => {
		return new Promise((reslove, reject) => {
			client.hdel(key, field, (err, data) => {
				if (err) return reject(err);
				reslove(data);
			});
		});
	},
	hgetall: (key) => {
		return new Promise((reslove, reject) => {
			client.hgetall(key, (err, data) => {
				if (err) return reject(err);
				reslove(data);
			});
		});
	}
};


module.exports = redisPromisify;